package com.module.ble.data.bean

import android.os.Parcelable
import com.common.app.utls.TimeUtils
import com.common.app.utls.TimeUtils.convertDaysToMinutes
import com.common.app.utls.TimeUtils.convertMillisToMinutes
import com.common.base.utils.DeviceInfoUtil.checkAndFormatMacAddress
import com.common.base.utils.MathUtil
import kotlinx.parcelize.Parcelize

/**
 *
 * 作者：sosou
 *
 * 版本：1.0
 *
 * 创建日期：2025/3/21
 *
 * 描述：
 *
 * 修订历史：
 *
 */
@Parcelize
data class RingInfoBean(
    var id: Int= -1,//云端ID
    var ringFirm: String="",//厂商
    var ringName: String="",//戒指名
    val ringMac: String="",//mac地址
    val serialNumber: String="",//SN
    var version: String="",//版本
    var vendorCode: String?="",//厂商代码
    var productCode:String?="",//产品型号
    var crcResult:String?="",//CRC校验结果
    var ringElectricity: Int=0,//电量
    var eleUpTime: Long=0,//电量更新时间
    var upTime: Long=0,//信息更新时间
    var color: Int= -1,//戒指颜色
    var size: Int= -1,//戒指大小

    var platform: String="",//YQ平台
    var brandName: String="",//YQ品牌
    var modelName: String="",//YQ型号
    var resVersion: String="",//YQ资源版本
    var batteryCode: String="",//YQ电池码

    var otherData:String?="",//预留
) : Parcelable{

    fun getRingElectricityStr():String{
        val electricityScale = MathUtil.div("100", convertDaysToMinutes(2).toString(),2)
        val electricityTemp = (ringElectricity - MathUtil.mul(electricityScale.toString(),convertMillisToMinutes(TimeUtils.getTimeDateLong() - eleUpTime).toString()).toInt())
        return if (electricityTemp<=0) "0" else electricityTemp.toString()
    }

    fun getRingMacStr():String{
        return checkAndFormatMacAddress(ringMac)
    }
}